Web services are, in general terms, computer software (or, for ease of reference, software) based services that are provided over a network (e.g., the Internet). More specifically, Web services are self-contained, modularized, executable entities that can be published, searched for, and accessed across a network. Web services are portable across disparate computing platforms because they are implemented according to widely accepted standards.
FIG. 1 is a block diagram of the basic architecture of a conventional Web services framework 100. Conventional Web services framework 100 includes service provider 110, service consumer 120, and service directory 130. Service provider 110 may be, for example, a Web application server that is implemented according to any of the Java 2 Enterprise Edition Specifications, for example, v1.3, published on Jul. 27, 2001 (hereinafter, the J2EE Standard). One or more Web services are deployed on service provider 110. These Web services comply, at least in part, with the basic Web services standards including: the Extensible Markup Language (XML) standard promulgated by the World Wide Web Consortium (W3C) entitled, “Extensible Markup Language (XML) 1.0 (Second Edition),” 6 Oct. 2000 (hereinafter, the XML Standard) and the Simple Object Access Protocol (SOAP) promulgated by the W3C entitled, “SOAP Version 1.1 Part 1: Messaging Framework and Part 2: Adjuncts,” 24 Jun. 2003 (hereinafter, the SOAP Protocol).
Service provider 110 publishes one or more Web services on service directory 130 via Web Service Definition Language (WSDL) document 140. A WSDL document may be a document that complies, at least in part, with any of the WSDL standards, for example, the WSDL standard promulgated by W3C entitled, “Web Services Description Language 1.1,” 15 Mar. 2001 (hereinafter, the WSDL Standard). WSDL document 140 is an XML document that provides pertinent information about a Web service such as its name, the methods that can be called, the parameters for the methods, and a location for sending requests.
Service directory 130 is a registry and discovery service for Web services. Service directory 130 may implement one of the Universal, Discovery, Description, and Integration of Web services (UDDI) specifications, for example, UDDI Version 3.0, Published Specification, Dated 19 Jul. 2002 (hereinafter, the UDDI Specification). The UDDI Specification defines a set of SOAP messages that are used to access XML-based data (e.g., WSDL document 140) in a registry. The UDDI Specification also defines a registry information model to structure the data stored in service directory 130 and to make it easier to search and navigate.
Service consumer 120 is a computing device that locates and uses a Web service published in service directory 130. Service consumer 120 may be, for example, a Web application server, a general-purpose computer, personal digital assistant, telephone, and the like. Service consumer 120 may implement the UDDI Specification to find and retrieve WSDL document 140. Service consumer 120 may generate a Web service client (not shown) based on WSDL document 140. The generated Web service client may then access the Web service from service provider 110 via, for example, the Internet.
In some cases, it may be advantages to extend the generated Web service client so that it implements additional functions. For example, the security of service consumer 120 may be enhanced if the Web service client includes an authentication extension. Similarly, the processing of message traffic between service consumer 120 and service provider 110 may be enhanced if the Web service client includes a flexible extension for processing message headers. Conventional Web service clients do not include these extensions.